Micron Document
Livres et Wikis | Archives | Info


JavaScript
part 15/23 Β· 89.0 KB total
layout: Wide Β· Narrow Β· Centered
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
} // fin de la fonction et de la portΓ©e des variables
alert(maVariable4); // erreurΒ : la variable est hors de sa portΓ©e
alert(maVariable5); // erreurΒ : la variable est hors de sa portΓ©e
alert(maVariable6); // erreurΒ : la variable est hors de sa portΓ©e

Une variable peut Γͺtre affectΓ©e ou masquΓ©e par une fonction enfant de la
fonction (ou de l'espace global) oΓΉ elle est dΓ©clarΓ©e :

var maVariable1 = 0; // dΓ©finition de la variable parente
// 1. Affectation
function maFonction1() { // fonction enfant
maVariable1 = 1; // affectation de la variable parente
}
alert(maVariable1); // affiche 0
maFonction1(); // affecte la variable parente
alert(maVariable1); // affiche 1
// 2. Masquage
var maVariable2 = 0; // dΓ©finition de la variable parente
function maFonction2() { // fonction enfant
var maVariable2; // dΓ©claration de la variable enfant masquant la
variable parente
maVariable2 = 1; // affectation de la variable enfant
}
alert(maVariable2); // affiche 0
maFonction2();
alert(maVariable2); // affiche 0

DΓ©claration des variables

En JavaScript, quel que soit le lieu de la dΓ©claration d'une variable
dans sa portée lexicale, la variable est créée au début de l'évaluation
de sa portΓ©e lexicale.

Les variables dΓ©clarΓ©es avec le mot-clΓ© var sont en plus
prΓ©-initialisΓ©es Γ  la valeur undefined lors de leur crΓ©ation, et donc
accessibles dès le début de leur portée lexicale. On parle de remontée
de la variable (variable hoisting en anglais) car cela se passe comme si
la dΓ©claration de la variable Γ©tait remontΓ©e au dΓ©but de sa portΓ©e
lexicale :

alert(maVariable); // affiche undefined
var maVariable = 0;
alert(maVariable); // affiche 0

Les variables dΓ©clarΓ©es avec le mot-clΓ© let ou const (ECMAScript 6) ne
sont pas prΓ©-initialisΓ©es, et donc inaccessibles avant leur dΓ©claration.
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────